// utils/request.js
export default function request(options = {}) {
  return new Promise((resolve, reject) => {
    // 从缓存读取 token
    const token = uni.getStorageSync('token') || ''
    uni.request({
      url: options.url,
      method: options.method || 'GET',
      data: options.data || {},
      header: {
        'Content-Type': options.contentType || 'application/json',
        ...(token ? { Authorization:'Bearer '+ token } : {}),
        ...options.header,
      },
      timeout: options.timeout || 10000, // 10秒超时
      success: (res) => {
        if (res.statusCode === 200) {
          // 这里可以根据后端的返回格式做额外判断，比如 code === 0 表示成功
          if (res.data.code === 0 || res.data.success) {
            resolve(res.data)
          } else {
            // 非业务成功状态，提示错误信息
			console.log(res)
            uni.showToast({
              title: res.data.message || '请求出错',
              icon: 'none',
              duration: 2000,
            })
            reject(res.data)
          }
        } else {
          uni.showToast({
            title: `网络错误：${res.statusCode}`,
            icon: 'none',
            duration: 2000,
          })
          reject(res)
        }
      },
      fail: (err) => {
        uni.showToast({
          title: '请求失败，请检查网络',
          icon: 'none',
          duration: 2000,
        })
        reject(err)
      },
    })
  })
}
